home *** CD-ROM | disk | FTP | other *** search
/ Game Programming in C++ - Start to Finish / GameProgrammingS.iso / Peon / PeonSDK-Win32-1.0.0.exe / {app} / PeonMain / include / GL / wglext.h < prev   
Encoding:
C/C++ Source or Header  |  2005-07-24  |  28.8 KB  |  663 lines

  1. #ifndef __wglext_h_
  2. #define __wglext_h_
  3.  
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7.  
  8. /*
  9. ** License Applicability. Except to the extent portions of this file are
  10. ** made subject to an alternative license as permitted in the SGI Free
  11. ** Software License B, Version 1.1 (the "License"), the contents of this
  12. ** file are subject only to the provisions of the License. You may not use
  13. ** this file except in compliance with the License. You may obtain a copy
  14. ** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
  15. ** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
  16. ** 
  17. ** http://oss.sgi.com/projects/FreeB
  18. ** 
  19. ** Note that, as provided in the License, the Software is distributed on an
  20. ** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
  21. ** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
  22. ** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
  23. ** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
  24. ** 
  25. ** Original Code. The Original Code is: OpenGL Sample Implementation,
  26. ** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
  27. ** Inc. The Original Code is Copyright (c) 1991-2004 Silicon Graphics, Inc.
  28. ** Copyright in any portions created by third parties is as indicated
  29. ** elsewhere herein. All Rights Reserved.
  30. ** 
  31. ** Additional Notice Provisions: This software was created using the
  32. ** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has
  33. ** not been independently verified as being compliant with the OpenGL(R)
  34. ** version 1.2.1 Specification.
  35. */
  36.  
  37. #if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
  38. #define WIN32_LEAN_AND_MEAN 1
  39. #include <windows.h>
  40. #endif
  41.  
  42. #ifndef APIENTRY
  43. #define APIENTRY
  44. #endif
  45. #ifndef APIENTRYP
  46. #define APIENTRYP APIENTRY *
  47. #endif
  48. #ifndef GLAPI
  49. #define GLAPI extern
  50. #endif
  51.  
  52. /*************************************************************/
  53.  
  54. /* Header file version number */
  55. /* wglext.h last updated 2005/01/07 */
  56. /* Current version at http://oss.sgi.com/projects/ogl-sample/registry/ */
  57. #define WGL_WGLEXT_VERSION 6
  58.  
  59. #ifndef WGL_ARB_buffer_region
  60. #define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001
  61. #define WGL_BACK_COLOR_BUFFER_BIT_ARB  0x00000002
  62. #define WGL_DEPTH_BUFFER_BIT_ARB       0x00000004
  63. #define WGL_STENCIL_BUFFER_BIT_ARB     0x00000008
  64. #endif
  65.  
  66. #ifndef WGL_ARB_multisample
  67. #define WGL_SAMPLE_BUFFERS_ARB         0x2041
  68. #define WGL_SAMPLES_ARB                0x2042
  69. #endif
  70.  
  71. #ifndef WGL_ARB_extensions_string
  72. #endif
  73.  
  74. #ifndef WGL_ARB_pixel_format
  75. #define WGL_NUMBER_PIXEL_FORMATS_ARB   0x2000
  76. #define WGL_DRAW_TO_WINDOW_ARB         0x2001
  77. #define WGL_DRAW_TO_BITMAP_ARB         0x2002
  78. #define WGL_ACCELERATION_ARB           0x2003
  79. #define WGL_NEED_PALETTE_ARB           0x2004
  80. #define WGL_NEED_SYSTEM_PALETTE_ARB    0x2005
  81. #define WGL_SWAP_LAYER_BUFFERS_ARB     0x2006
  82. #define WGL_SWAP_METHOD_ARB            0x2007
  83. #define WGL_NUMBER_OVERLAYS_ARB        0x2008
  84. #define WGL_NUMBER_UNDERLAYS_ARB       0x2009
  85. #define WGL_TRANSPARENT_ARB            0x200A
  86. #define WGL_TRANSPARENT_RED_VALUE_ARB  0x2037
  87. #define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
  88. #define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
  89. #define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
  90. #define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
  91. #define WGL_SHARE_DEPTH_ARB            0x200C
  92. #define WGL_SHARE_STENCIL_ARB          0x200D
  93. #define WGL_SHARE_ACCUM_ARB            0x200E
  94. #define WGL_SUPPORT_GDI_ARB            0x200F
  95. #define WGL_SUPPORT_OPENGL_ARB         0x2010
  96. #define WGL_DOUBLE_BUFFER_ARB          0x2011
  97. #define WGL_STEREO_ARB                 0x2012
  98. #define WGL_PIXEL_TYPE_ARB             0x2013
  99. #define WGL_COLOR_BITS_ARB             0x2014
  100. #define WGL_RED_BITS_ARB               0x2015
  101. #define WGL_RED_SHIFT_ARB              0x2016
  102. #define WGL_GREEN_BITS_ARB             0x2017
  103. #define WGL_GREEN_SHIFT_ARB            0x2018
  104. #define WGL_BLUE_BITS_ARB              0x2019
  105. #define WGL_BLUE_SHIFT_ARB             0x201A
  106. #define WGL_ALPHA_BITS_ARB             0x201B
  107. #define WGL_ALPHA_SHIFT_ARB            0x201C
  108. #define WGL_ACCUM_BITS_ARB             0x201D
  109. #define WGL_ACCUM_RED_BITS_ARB         0x201E
  110. #define WGL_ACCUM_GREEN_BITS_ARB       0x201F
  111. #define WGL_ACCUM_BLUE_BITS_ARB        0x2020
  112. #define WGL_ACCUM_ALPHA_BITS_ARB       0x2021
  113. #define WGL_DEPTH_BITS_ARB             0x2022
  114. #define WGL_STENCIL_BITS_ARB           0x2023
  115. #define WGL_AUX_BUFFERS_ARB            0x2024
  116. #define WGL_NO_ACCELERATION_ARB        0x2025
  117. #define WGL_GENERIC_ACCELERATION_ARB   0x2026
  118. #define WGL_FULL_ACCELERATION_ARB      0x2027
  119. #define WGL_SWAP_EXCHANGE_ARB          0x2028
  120. #define WGL_SWAP_COPY_ARB              0x2029
  121. #define WGL_SWAP_UNDEFINED_ARB         0x202A
  122. #define WGL_TYPE_RGBA_ARB              0x202B
  123. #define WGL_TYPE_COLORINDEX_ARB        0x202C
  124. #endif
  125.  
  126. #ifndef WGL_ARB_make_current_read
  127. #define ERROR_INVALID_PIXEL_TYPE_ARB   0x2043
  128. #define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054
  129. #endif
  130.  
  131. #ifndef WGL_ARB_pbuffer
  132. #define WGL_DRAW_TO_PBUFFER_ARB        0x202D
  133. #define WGL_MAX_PBUFFER_PIXELS_ARB     0x202E
  134. #define WGL_MAX_PBUFFER_WIDTH_ARB      0x202F
  135. #define WGL_MAX_PBUFFER_HEIGHT_ARB     0x2030
  136. #define WGL_PBUFFER_LARGEST_ARB        0x2033
  137. #define WGL_PBUFFER_WIDTH_ARB          0x2034
  138. #define WGL_PBUFFER_HEIGHT_ARB         0x2035
  139. #define WGL_PBUFFER_LOST_ARB           0x2036
  140. #endif
  141.  
  142. #ifndef WGL_ARB_render_texture
  143. #define WGL_BIND_TO_TEXTURE_RGB_ARB    0x2070
  144. #define WGL_BIND_TO_TEXTURE_RGBA_ARB   0x2071
  145. #define WGL_TEXTURE_FORMAT_ARB         0x2072
  146. #define WGL_TEXTURE_TARGET_ARB         0x2073
  147. #define WGL_MIPMAP_TEXTURE_ARB         0x2074
  148. #define WGL_TEXTURE_RGB_ARB            0x2075
  149. #define WGL_TEXTURE_RGBA_ARB           0x2076
  150. #define WGL_NO_TEXTURE_ARB             0x2077
  151. #define WGL_TEXTURE_CUBE_MAP_ARB       0x2078
  152. #define WGL_TEXTURE_1D_ARB             0x2079
  153. #define WGL_TEXTURE_2D_ARB             0x207A
  154. #define WGL_MIPMAP_LEVEL_ARB           0x207B
  155. #define WGL_CUBE_MAP_FACE_ARB          0x207C
  156. #define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D
  157. #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E
  158. #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F
  159. #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080
  160. #define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081
  161. #define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082
  162. #define WGL_FRONT_LEFT_ARB             0x2083
  163. #define WGL_FRONT_RIGHT_ARB            0x2084
  164. #define WGL_BACK_LEFT_ARB              0x2085
  165. #define WGL_BACK_RIGHT_ARB             0x2086
  166. #define WGL_AUX0_ARB                   0x2087
  167. #define WGL_AUX1_ARB                   0x2088
  168. #define WGL_AUX2_ARB                   0x2089
  169. #define WGL_AUX3_ARB                   0x208A
  170. #define WGL_AUX4_ARB                   0x208B
  171. #define WGL_AUX5_ARB                   0x208C
  172. #define WGL_AUX6_ARB                   0x208D
  173. #define WGL_AUX7_ARB                   0x208E
  174. #define WGL_AUX8_ARB                   0x208F
  175. #define WGL_AUX9_ARB                   0x2090
  176. #endif
  177.  
  178. #ifndef WGL_ARB_pixel_format_float
  179. #define WGL_TYPE_RGBA_FLOAT_ARB        0x21A0
  180. #endif
  181.  
  182. #ifndef WGL_EXT_make_current_read
  183. #define ERROR_INVALID_PIXEL_TYPE_EXT   0x2043
  184. #endif
  185.  
  186. #ifndef WGL_EXT_pixel_format
  187. #define WGL_NUMBER_PIXEL_FORMATS_EXT   0x2000
  188. #define WGL_DRAW_TO_WINDOW_EXT         0x2001
  189. #define WGL_DRAW_TO_BITMAP_EXT         0x2002
  190. #define WGL_ACCELERATION_EXT           0x2003
  191. #define WGL_NEED_PALETTE_EXT           0x2004
  192. #define WGL_NEED_SYSTEM_PALETTE_EXT    0x2005
  193. #define WGL_SWAP_LAYER_BUFFERS_EXT     0x2006
  194. #define WGL_SWAP_METHOD_EXT            0x2007
  195. #define WGL_NUMBER_OVERLAYS_EXT        0x2008
  196. #define WGL_NUMBER_UNDERLAYS_EXT       0x2009
  197. #define WGL_TRANSPARENT_EXT            0x200A
  198. #define WGL_TRANSPARENT_VALUE_EXT      0x200B
  199. #define WGL_SHARE_DEPTH_EXT            0x200C
  200. #define WGL_SHARE_STENCIL_EXT          0x200D
  201. #define WGL_SHARE_ACCUM_EXT            0x200E
  202. #define WGL_SUPPORT_GDI_EXT            0x200F
  203. #define WGL_SUPPORT_OPENGL_EXT         0x2010
  204. #define WGL_DOUBLE_BUFFER_EXT          0x2011
  205. #define WGL_STEREO_EXT                 0x2012
  206. #define WGL_PIXEL_TYPE_EXT             0x2013
  207. #define WGL_COLOR_BITS_EXT             0x2014
  208. #define WGL_RED_BITS_EXT               0x2015
  209. #define WGL_RED_SHIFT_EXT              0x2016
  210. #define WGL_GREEN_BITS_EXT             0x2017
  211. #define WGL_GREEN_SHIFT_EXT            0x2018
  212. #define WGL_BLUE_BITS_EXT              0x2019
  213. #define WGL_BLUE_SHIFT_EXT             0x201A
  214. #define WGL_ALPHA_BITS_EXT             0x201B
  215. #define WGL_ALPHA_SHIFT_EXT            0x201C
  216. #define WGL_ACCUM_BITS_EXT             0x201D
  217. #define WGL_ACCUM_RED_BITS_EXT         0x201E
  218. #define WGL_ACCUM_GREEN_BITS_EXT       0x201F
  219. #define WGL_ACCUM_BLUE_BITS_EXT        0x2020
  220. #define WGL_ACCUM_ALPHA_BITS_EXT       0x2021
  221. #define WGL_DEPTH_BITS_EXT             0x2022
  222. #define WGL_STENCIL_BITS_EXT           0x2023
  223. #define WGL_AUX_BUFFERS_EXT            0x2024
  224. #define WGL_NO_ACCELERATION_EXT        0x2025
  225. #define WGL_GENERIC_ACCELERATION_EXT   0x2026
  226. #define WGL_FULL_ACCELERATION_EXT      0x2027
  227. #define WGL_SWAP_EXCHANGE_EXT          0x2028
  228. #define WGL_SWAP_COPY_EXT              0x2029
  229. #define WGL_SWAP_UNDEFINED_EXT         0x202A
  230. #define WGL_TYPE_RGBA_EXT              0x202B
  231. #define WGL_TYPE_COLORINDEX_EXT        0x202C
  232. #endif
  233.  
  234. #ifndef WGL_EXT_pbuffer
  235. #define WGL_DRAW_TO_PBUFFER_EXT        0x202D
  236. #define WGL_MAX_PBUFFER_PIXELS_EXT     0x202E
  237. #define WGL_MAX_PBUFFER_WIDTH_EXT      0x202F
  238. #define WGL_MAX_PBUFFER_HEIGHT_EXT     0x2030
  239. #define WGL_OPTIMAL_PBUFFER_WIDTH_EXT  0x2031
  240. #define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032
  241. #define WGL_PBUFFER_LARGEST_EXT        0x2033
  242. #define WGL_PBUFFER_WIDTH_EXT          0x2034
  243. #define WGL_PBUFFER_HEIGHT_EXT         0x2035
  244. #endif
  245.  
  246. #ifndef WGL_EXT_depth_float
  247. #define WGL_DEPTH_FLOAT_EXT            0x2040
  248. #endif
  249.  
  250. #ifndef WGL_3DFX_multisample
  251. #define WGL_SAMPLE_BUFFERS_3DFX        0x2060
  252. #define WGL_SAMPLES_3DFX               0x2061
  253. #endif
  254.  
  255. #ifndef WGL_EXT_multisample
  256. #define WGL_SAMPLE_BUFFERS_EXT         0x2041
  257. #define WGL_SAMPLES_EXT                0x2042
  258. #endif
  259.  
  260. #ifndef WGL_I3D_digital_video_control
  261. #define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050
  262. #define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051
  263. #define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052
  264. #define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053
  265. #endif
  266.  
  267. #ifndef WGL_I3D_gamma
  268. #define WGL_GAMMA_TABLE_SIZE_I3D       0x204E
  269. #define WGL_GAMMA_EXCLUDE_DESKTOP_I3D  0x204F
  270. #endif
  271.  
  272. #ifndef WGL_I3D_genlock
  273. #define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044
  274. #define WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D 0x2045
  275. #define WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D 0x2046
  276. #define WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D 0x2047
  277. #define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048
  278. #define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049
  279. #define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A
  280. #define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B
  281. #define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C
  282. #endif
  283.  
  284. #ifndef WGL_I3D_image_buffer
  285. #define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001
  286. #define WGL_IMAGE_BUFFER_LOCK_I3D      0x00000002
  287. #endif
  288.  
  289. #ifndef WGL_I3D_swap_frame_lock
  290. #endif
  291.  
  292. #ifndef WGL_NV_render_depth_texture
  293. #define WGL_BIND_TO_TEXTURE_DEPTH_NV   0x20A3
  294. #define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4
  295. #define WGL_DEPTH_TEXTURE_FORMAT_NV    0x20A5
  296. #define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6
  297. #define WGL_DEPTH_COMPONENT_NV         0x20A7
  298. #endif
  299.  
  300. #ifndef WGL_NV_render_texture_rectangle
  301. #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0
  302. #define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1
  303. #define WGL_TEXTURE_RECTANGLE_NV       0x20A2
  304. #endif
  305.  
  306. #ifndef WGL_ATI_pixel_format_float
  307. #define WGL_TYPE_RGBA_FLOAT_ATI        0x21A0
  308. #define WGL_RGBA_FLOAT_MODE_ATI        0x8820
  309. #define WGL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835
  310. #endif
  311.  
  312. #ifndef WGL_NV_float_buffer
  313. #define WGL_FLOAT_COMPONENTS_NV        0x20B0
  314. #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1
  315. #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2
  316. #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3
  317. #define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4
  318. #define WGL_TEXTURE_FLOAT_R_NV         0x20B5
  319. #define WGL_TEXTURE_FLOAT_RG_NV        0x20B6
  320. #define WGL_TEXTURE_FLOAT_RGB_NV       0x20B7
  321. #define WGL_TEXTURE_FLOAT_RGBA_NV      0x20B8
  322. #endif
  323.  
  324. #ifndef WGL_NV_swap_group
  325. #endif
  326.  
  327.  
  328. /*************************************************************/
  329.  
  330. #ifndef WGL_ARB_pbuffer
  331. DECLARE_HANDLE(HPBUFFERARB);
  332. #endif
  333. #ifndef WGL_EXT_pbuffer
  334. DECLARE_HANDLE(HPBUFFEREXT);
  335. #endif
  336.  
  337. #ifndef WGL_ARB_buffer_region
  338. #define WGL_ARB_buffer_region 1
  339. #ifdef WGL_WGLEXT_PROTOTYPES
  340. extern HANDLE WINAPI wglCreateBufferRegionARB (HDC, int, UINT);
  341. extern VOID WINAPI wglDeleteBufferRegionARB (HANDLE);
  342. extern BOOL WINAPI wglSaveBufferRegionARB (HANDLE, int, int, int, int);
  343. extern BOOL WINAPI wglRestoreBufferRegionARB (HANDLE, int, int, int, int, int, int);
  344. #endif /* WGL_WGLEXT_PROTOTYPES */
  345. typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType);
  346. typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion);
  347. typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height);
  348. typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
  349. #endif
  350.  
  351. #ifndef WGL_ARB_multisample
  352. #define WGL_ARB_multisample 1
  353. #endif
  354.  
  355. #ifndef WGL_ARB_extensions_string
  356. #define WGL_ARB_extensions_string 1
  357. #ifdef WGL_WGLEXT_PROTOTYPES
  358. extern const char * WINAPI wglGetExtensionsStringARB (HDC);
  359. #endif /* WGL_WGLEXT_PROTOTYPES */
  360. typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc);
  361. #endif
  362.  
  363. #ifndef WGL_ARB_pixel_format
  364. #define WGL_ARB_pixel_format 1
  365. #ifdef WGL_WGLEXT_PROTOTYPES
  366. extern BOOL WINAPI wglGetPixelFormatAttribivARB (HDC, int, int, UINT, const int *, int *);
  367. extern BOOL WINAPI wglGetPixelFormatAttribfvARB (HDC, int, int, UINT, const int *, FLOAT *);
  368. extern BOOL WINAPI wglChoosePixelFormatARB (HDC, const int *, const FLOAT *, UINT, int *, UINT *);
  369. #endif /* WGL_WGLEXT_PROTOTYPES */
  370. typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
  371. typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
  372. typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
  373. #endif
  374.  
  375. #ifndef WGL_ARB_make_current_read
  376. #define WGL_ARB_make_current_read 1
  377. #ifdef WGL_WGLEXT_PROTOTYPES
  378. extern BOOL WINAPI wglMakeContextCurrentARB (HDC, HDC, HGLRC);
  379. extern HDC WINAPI wglGetCurrentReadDCARB (void);
  380. #endif /* WGL_WGLEXT_PROTOTYPES */
  381. typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
  382. typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (void);
  383. #endif
  384.  
  385. #ifndef WGL_ARB_pbuffer
  386. #define WGL_ARB_pbuffer 1
  387. #ifdef WGL_WGLEXT_PROTOTYPES
  388. extern HPBUFFERARB WINAPI wglCreatePbufferARB (HDC, int, int, int, const int *);
  389. extern HDC WINAPI wglGetPbufferDCARB (HPBUFFERARB);
  390. extern int WINAPI wglReleasePbufferDCARB (HPBUFFERARB, HDC);
  391. extern BOOL WINAPI wglDestroyPbufferARB (HPBUFFERARB);
  392. extern BOOL WINAPI wglQueryPbufferARB (HPBUFFERARB, int, int *);
  393. #endif /* WGL_WGLEXT_PROTOTYPES */
  394. typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
  395. typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer);
  396. typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC);
  397. typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer);
  398. typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
  399. #endif
  400.  
  401. #ifndef WGL_ARB_render_texture
  402. #define WGL_ARB_render_texture 1
  403. #ifdef WGL_WGLEXT_PROTOTYPES
  404. extern BOOL WINAPI wglBindTexImageARB (HPBUFFERARB, int);
  405. extern BOOL WINAPI wglReleaseTexImageARB (HPBUFFERARB, int);
  406. extern BOOL WINAPI wglSetPbufferAttribARB (HPBUFFERARB, const int *);
  407. #endif /* WGL_WGLEXT_PROTOTYPES */
  408. typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
  409. typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
  410. typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int *piAttribList);
  411. #endif
  412.  
  413. #ifndef WGL_ARB_pixel_format_float
  414. #define WGL_ARB_pixel_format_float 1
  415. #endif
  416.  
  417. #ifndef WGL_EXT_display_color_table
  418. #define WGL_EXT_display_color_table 1
  419. #ifdef WGL_WGLEXT_PROTOTYPES
  420. extern GLboolean WINAPI wglCreateDisplayColorTableEXT (GLushort);
  421. extern GLboolean WINAPI wglLoadDisplayColorTableEXT (const GLushort *, GLuint);
  422. extern GLboolean WINAPI wglBindDisplayColorTableEXT (GLushort);
  423. extern VOID WINAPI wglDestroyDisplayColorTableEXT (GLushort);
  424. #endif /* WGL_WGLEXT_PROTOTYPES */
  425. typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id);
  426. typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (const GLushort *table, GLuint length);
  427. typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id);
  428. typedef VOID (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id);
  429. #endif
  430.  
  431. #ifndef WGL_EXT_extensions_string
  432. #define WGL_EXT_extensions_string 1
  433. #ifdef WGL_WGLEXT_PROTOTYPES
  434. extern const char * WINAPI wglGetExtensionsStringEXT (void);
  435. #endif /* WGL_WGLEXT_PROTOTYPES */
  436. typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void);
  437. #endif
  438.  
  439. #ifndef WGL_EXT_make_current_read
  440. #define WGL_EXT_make_current_read 1
  441. #ifdef WGL_WGLEXT_PROTOTYPES
  442. extern BOOL WINAPI wglMakeContextCurrentEXT (HDC, HDC, HGLRC);
  443. extern HDC WINAPI wglGetCurrentReadDCEXT (void);
  444. #endif /* WGL_WGLEXT_PROTOTYPES */
  445. typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
  446. typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (void);
  447. #endif
  448.  
  449. #ifndef WGL_EXT_pbuffer
  450. #define WGL_EXT_pbuffer 1
  451. #ifdef WGL_WGLEXT_PROTOTYPES
  452. extern HPBUFFEREXT WINAPI wglCreatePbufferEXT (HDC, int, int, int, const int *);
  453. extern HDC WINAPI wglGetPbufferDCEXT (HPBUFFEREXT);
  454. extern int WINAPI wglReleasePbufferDCEXT (HPBUFFEREXT, HDC);
  455. extern BOOL WINAPI wglDestroyPbufferEXT (HPBUFFEREXT);
  456. extern BOOL WINAPI wglQueryPbufferEXT (HPBUFFEREXT, int, int *);
  457. #endif /* WGL_WGLEXT_PROTOTYPES */
  458. typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
  459. typedef HDC (WINAPI * PFNWGLGETPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer);
  460. typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC hDC);
  461. typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer);
  462. typedef BOOL (WINAPI * PFNWGLQUERYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue);
  463. #endif
  464.  
  465. #ifndef WGL_EXT_pixel_format
  466. #define WGL_EXT_pixel_format 1
  467. #ifdef WGL_WGLEXT_PROTOTYPES
  468. extern BOOL WINAPI wglGetPixelFormatAttribivEXT (HDC, int, int, UINT, int *, int *);
  469. extern BOOL WINAPI wglGetPixelFormatAttribfvEXT (HDC, int, int, UINT, int *, FLOAT *);
  470. extern BOOL WINAPI wglChoosePixelFormatEXT (HDC, const int *, const FLOAT *, UINT, int *, UINT *);
  471. #endif /* WGL_WGLEXT_PROTOTYPES */
  472. typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues);
  473. typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues);
  474. typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
  475. #endif
  476.  
  477. #ifndef WGL_EXT_swap_control
  478. #define WGL_EXT_swap_control 1
  479. #ifdef WGL_WGLEXT_PROTOTYPES
  480. extern BOOL WINAPI wglSwapIntervalEXT (int);
  481. extern int WINAPI wglGetSwapIntervalEXT (void);
  482. #endif /* WGL_WGLEXT_PROTOTYPES */
  483. typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval);
  484. typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void);
  485. #endif
  486.  
  487. #ifndef WGL_EXT_depth_float
  488. #define WGL_EXT_depth_float 1
  489. #endif
  490.  
  491. #ifndef WGL_NV_vertex_array_range
  492. #define WGL_NV_vertex_array_range 1
  493. #ifdef WGL_WGLEXT_PROTOTYPES
  494. extern void* WINAPI wglAllocateMemoryNV (GLsizei, GLfloat, GLfloat, GLfloat);
  495. extern void WINAPI wglFreeMemoryNV (void *);
  496. #endif /* WGL_WGLEXT_PROTOTYPES */
  497. typedef void* (WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
  498. typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer);
  499. #endif
  500.  
  501. #ifndef WGL_3DFX_multisample
  502. #define WGL_3DFX_multisample 1
  503. #endif
  504.  
  505. #ifndef WGL_EXT_multisample
  506. #define WGL_EXT_multisample 1
  507. #endif
  508.  
  509. #ifndef WGL_OML_sync_control
  510. #define WGL_OML_sync_control 1
  511. #ifdef WGL_WGLEXT_PROTOTYPES
  512. extern BOOL WINAPI wglGetSyncValuesOML (HDC, INT64 *, INT64 *, INT64 *);
  513. extern BOOL WINAPI wglGetMscRateOML (HDC, INT32 *, INT32 *);
  514. extern INT64 WINAPI wglSwapBuffersMscOML (HDC, INT64, INT64, INT64);
  515. extern INT64 WINAPI wglSwapLayerBuffersMscOML (HDC, int, INT64, INT64, INT64);
  516. extern BOOL WINAPI wglWaitForMscOML (HDC, INT64, INT64, INT64, INT64 *, INT64 *, INT64 *);
  517. extern BOOL WINAPI wglWaitForSbcOML (HDC, INT64, INT64 *, INT64 *, INT64 *);
  518. #endif /* WGL_WGLEXT_PROTOTYPES */
  519. typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc);
  520. typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32 *numerator, INT32 *denominator);
  521. typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
  522. typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
  523. typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);
  524. typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc);
  525. #endif
  526.  
  527. #ifndef WGL_I3D_digital_video_control
  528. #define WGL_I3D_digital_video_control 1
  529. #ifdef WGL_WGLEXT_PROTOTYPES
  530. extern BOOL WINAPI wglGetDigitalVideoParametersI3D (HDC, int, int *);
  531. extern BOOL WINAPI wglSetDigitalVideoParametersI3D (HDC, int, const int *);
  532. #endif /* WGL_WGLEXT_PROTOTYPES */
  533. typedef BOOL (WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int *piValue);
  534. typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int *piValue);
  535. #endif
  536.  
  537. #ifndef WGL_I3D_gamma
  538. #define WGL_I3D_gamma 1
  539. #ifdef WGL_WGLEXT_PROTOTYPES
  540. extern BOOL WINAPI wglGetGammaTableParametersI3D (HDC, int, int *);
  541. extern BOOL WINAPI wglSetGammaTableParametersI3D (HDC, int, const int *);
  542. extern BOOL WINAPI wglGetGammaTableI3D (HDC, int, USHORT *, USHORT *, USHORT *);
  543. extern BOOL WINAPI wglSetGammaTableI3D (HDC, int, const USHORT *, const USHORT *, const USHORT *);
  544. #endif /* WGL_WGLEXT_PROTOTYPES */
  545. typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int *piValue);
  546. typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int *piValue);
  547. typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue);
  548. typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue);
  549. #endif
  550.  
  551. #ifndef WGL_I3D_genlock
  552. #define WGL_I3D_genlock 1
  553. #ifdef WGL_WGLEXT_PROTOTYPES
  554. extern BOOL WINAPI wglEnableGenlockI3D (HDC);
  555. extern BOOL WINAPI wglDisableGenlockI3D (HDC);
  556. extern BOOL WINAPI wglIsEnabledGenlockI3D (HDC, BOOL *);
  557. extern BOOL WINAPI wglGenlockSourceI3D (HDC, UINT);
  558. extern BOOL WINAPI wglGetGenlockSourceI3D (HDC, UINT *);
  559. extern BOOL WINAPI wglGenlockSourceEdgeI3D (HDC, UINT);
  560. extern BOOL WINAPI wglGetGenlockSourceEdgeI3D (HDC, UINT *);
  561. extern BOOL WINAPI wglGenlockSampleRateI3D (HDC, UINT);
  562. extern BOOL WINAPI wglGetGenlockSampleRateI3D (HDC, UINT *);
  563. extern BOOL WINAPI wglGenlockSourceDelayI3D (HDC, UINT);
  564. extern BOOL WINAPI wglGetGenlockSourceDelayI3D (HDC, UINT *);
  565. extern BOOL WINAPI wglQueryGenlockMaxSourceDelayI3D (HDC, UINT *, UINT *);
  566. #endif /* WGL_WGLEXT_PROTOTYPES */
  567. typedef BOOL (WINAPI * PFNWGLENABLEGENLOCKI3DPROC) (HDC hDC);
  568. typedef BOOL (WINAPI * PFNWGLDISABLEGENLOCKI3DPROC) (HDC hDC);
  569. typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL *pFlag);
  570. typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEI3DPROC) (HDC hDC, UINT uSource);
  571. typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC) (HDC hDC, UINT *uSource);
  572. typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT uEdge);
  573. typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT *uEdge);
  574. typedef BOOL (WINAPI * PFNWGLGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT uRate);
  575. typedef BOOL (WINAPI * PFNWGLGETGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT *uRate);
  576. typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT uDelay);
  577. typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT *uDelay);
  578. typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay);
  579. #endif
  580.  
  581. #ifndef WGL_I3D_image_buffer
  582. #define WGL_I3D_image_buffer 1
  583. #ifdef WGL_WGLEXT_PROTOTYPES
  584. extern LPVOID WINAPI wglCreateImageBufferI3D (HDC, DWORD, UINT);
  585. extern BOOL WINAPI wglDestroyImageBufferI3D (HDC, LPVOID);
  586. extern BOOL WINAPI wglAssociateImageBufferEventsI3D (HDC, const HANDLE *, const LPVOID *, const DWORD *, UINT);
  587. extern BOOL WINAPI wglReleaseImageBufferEventsI3D (HDC, const LPVOID *, UINT);
  588. #endif /* WGL_WGLEXT_PROTOTYPES */
  589. typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags);
  590. typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress);
  591. typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count);
  592. typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const LPVOID *pAddress, UINT count);
  593. #endif
  594.  
  595. #ifndef WGL_I3D_swap_frame_lock
  596. #define WGL_I3D_swap_frame_lock 1
  597. #ifdef WGL_WGLEXT_PROTOTYPES
  598. extern BOOL WINAPI wglEnableFrameLockI3D (void);
  599. extern BOOL WINAPI wglDisableFrameLockI3D (void);
  600. extern BOOL WINAPI wglIsEnabledFrameLockI3D (BOOL *);
  601. extern BOOL WINAPI wglQueryFrameLockMasterI3D (BOOL *);
  602. #endif /* WGL_WGLEXT_PROTOTYPES */
  603. typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (void);
  604. typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (void);
  605. typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL *pFlag);
  606. typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL *pFlag);
  607. #endif
  608.  
  609. #ifndef WGL_I3D_swap_frame_usage
  610. #define WGL_I3D_swap_frame_usage 1
  611. #ifdef WGL_WGLEXT_PROTOTYPES
  612. extern BOOL WINAPI wglGetFrameUsageI3D (float *);
  613. extern BOOL WINAPI wglBeginFrameTrackingI3D (void);
  614. extern BOOL WINAPI wglEndFrameTrackingI3D (void);
  615. extern BOOL WINAPI wglQueryFrameTrackingI3D (DWORD *, DWORD *, float *);
  616. #endif /* WGL_WGLEXT_PROTOTYPES */
  617. typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float *pUsage);
  618. typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void);
  619. typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void);
  620. typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage);
  621. #endif
  622.  
  623. #ifndef WGL_ATI_pixel_format_float
  624. #define WGL_ATI_pixel_format_float 1
  625. #endif
  626.  
  627. #ifndef WGL_NV_render_depth_texture
  628. #define WGL_NV_render_depth_texture 1
  629. #endif
  630.  
  631. #ifndef WGL_NV_render_texture_rectangle
  632. #define WGL_NV_render_texture_rectangle 1
  633. #endif
  634.  
  635. #ifndef WGL_NV_float_buffer
  636. #define WGL_NV_float_buffer 1
  637. #endif
  638.  
  639. #ifndef WGL_NV_swap_group
  640. #define WGL_NV_swap_group 1
  641. #ifdef WGL_WGLEXT_PROTOTYPES
  642. extern BOOL WINAPI wglJoinSwapGroupNV(HDC hDC, GLuint group);
  643. extern BOOL WINAPI wglBindSwapBarrierNV(GLuint group, GLuint barrier);
  644. extern BOOL WINAPI wglQuerySwapGroupNV(HDC hDC GLuint *group, GLuint *barrier);
  645. extern BOOL WINAPI wglQueryMaxSwapGroupsNV(HDC hDC, GLuint *maxGroups, GLuint *maxBarriers);
  646. extern BOOL WINAPI wglQueryFrameCountNV(HDC hDC, GLuint *count);
  647. extern BOOL WINAPI wglResetFrameCountNV(HDC hDC);
  648. #endif /* WGL_WGLEXT_PROTOTYPES */
  649. typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group);
  650. typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier);
  651. typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint *group, GLuint *barrier);
  652. typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint *maxGroups, GLuint *maxBarriers);
  653. typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint *count);
  654. typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC);
  655. #endif
  656.  
  657.  
  658. #ifdef __cplusplus
  659. }
  660. #endif
  661.  
  662. #endif
  663.